Developing and Executing Workflow Processes Associated with Data-Encoded Tags

ABSTRACT

Methods and apparatuses, including computer program products, are described for developing workflow processes associated with data-encoded tags. A server receives tag data associated with each of a plurality of data-encoded tags from one or more mobile devices capable of reading data-encoded tags. The server generates a collection of tags to include each of the plurality of data-encoded tags. The server develops a workflow process associated with the collection of tags using the received tag data, and stores the workflow process in a data storage module.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/327,824, filed on Dec. 16, 2011.

TECHNICAL FIELD

The subject matter of this application relates generally to methods andapparatuses, including computer program products, for developing andexecuting workflow processes associated with data-encoded tags.

BACKGROUND

Use of data-encoded tags to store and make available information about arelated item has become increasingly common. Tags utilize differenttypes of communication and encoding standards, such as radio frequencyidentification (RFID), near-field communication (NFC), two-dimensional(2D) bar code, or quick response (QR) code, among others. Portablewireless devices, such as smartphones and tablets, are able to read thetags and collect the information stored on the tags. As an example, forNFC tags, the NFC forum has defined the NFC Data Exchange Format (NDEF)to standardize the storage of data on an NFC tag.

The typical use of such tags is to encode a static data item on the tagthat acts as a pointer or an instruction to a wireless device that readsthe tag. For example, the data item can instruct the device to visit aweb site, receive content, or make a phone call to a particular number.Typically, tag management systems associate tag data to static contentrelated to physical locations or points of interest (e.g., the locationwhere the tag is affixed) or static pointers to variable content, suchas news and data web sites or public transportation schedules.

As mobile technology becomes more sophisticated, there is a need formore advanced use and management of tags. Demanding applications andcomplex use cases such as integration with social networks,location-based marketing and enterprise applications require logicprocess and workflow handling beyond simply reading static data encodedonto tags.

Therefore, systems and methods are required to provide a dynamicconnection to a workflow-based content delivery and fulfillment systemthat integrates tags, wireless device software, and network server withcontent management, workflow capabilities and integration with thirdparty content or service fulfillment.

SUMMARY OF THE INVENTION

In general overview, the techniques described herein are related todeveloping and executing workflow processes associated with data-encodedtags. The techniques provide for dynamic creation and management ofworkflows that are connected to one or more data-encoded tags, where awireless device interacts with a server-based system to generate andexecute workflow processes for a variety of applications, based on thedevice's interaction with the tags.

A collection of tags is created through a process of reading a tag andrecording the tag's location and data associated with the tag. Forexample, multiple users on different mobile devices that use anapplication are able to record many tags in parallel by using thetechniques described herein. Once assembled, the collection of tags canbe linked into a workflow process. This is done by way of defining arole for each tag, which can be done in batches selected by multipledifferent criteria, for example, proximity to a point of interest, ordate of recording the tag. A process is defined in a server-basedworkflow system and transitions between the workflow steps are definedaccording to the role of the tag and decisions based on associated tagdata. This may include a multiplicity of data such as, the history ofprevious tags, the time of the reading, the location of the tag, theuser profile and the handset characteristics, or other external dataitems or sources.

The dynamically generated content or fulfillment service associated withthe next step of the process flow is executed and the end user receivesthe appropriate content or service. In addition data or content may berequested from the user and this may be transmitted to the server forrecording or incorporation into further steps of the process and hencebecome criteria for further decisions.

The invention, in one aspect, features a system for developing workflowprocesses associated with data-encoded tags. The system includes aserver configured to receive, from one or more mobile devices capable ofreading data-encoded tags, tag data associated with each of a pluralityof tags and generate a collection of tags to include each of theplurality of data-encoded tags. The server is also configured to developa workflow process associated with the collection of tags using the tagdata, and store the workflow process in a data storage module.

The invention, in another aspect, features a system for content andworkflow process management for mobile devices through use ofdata-encoded tags. The system includes a server configured to receive,from one or more mobile devices capable of reading data-encoded tags,tag data associated with each of a plurality of tags, determine aworkflow process using the tag data, and transmit, to the one or moremobile devices, content associated with the workflow process.

The invention, in another aspect, features a method for developingworkflow processes associated with data-encoded tags. The methodincludes receiving, by a server from one or more mobile devices capableof reading data-encoded tags, tag data associated with each of aplurality of data-encoded tags and generating, by the server, acollection of tags to include each of the plurality of data-encodedtags. The method also includes developing, by the server, a workflowprocess associated with the collection of tags using the received tagdata, and storing, by the server, the workflow process in a data storagemodule.

The invention, in another aspect, features a method for content andworkflow process management for mobile devices through use ofdata-encoded tags. The method includes receiving, by a server from oneor more mobile devices capable of reading data-encoded tags, tag dataassociated with each of a plurality of data-encoded tags, determining,by the server, a workflow process using the received tag data, andtransmitting, to the one or more mobile devices, content associated withthe workflow process.

The invention, in another aspect, features a computer program product,tangibly embodied in a non-transitory computer readable storage medium,for developing workflow processes associated with data-encoded tags. Thecomputer program product includes instructions operable to cause a dataprocessing apparatus to receive, from one or more mobile devices capableof reading data-encoded tags, tag data associated with each of aplurality of data-encoded tags, and generate a collection of tags toinclude each of the plurality of data-encoded tags. The computer programproduct also includes instructions operable to cause a data processingapparatus to develop a workflow process associated with the collectionof tags using the received tag data, and store the workflow process in adata storage module.

The invention, in another aspect, features a computer program product,tangibly embodied in a non-transitory computer readable storage medium,for content and workflow process management for mobile devices throughuse of data-encoded tags. The computer program product includesinstructions operable to cause a data processing apparatus to receive,from one or more mobile devices capable of reading data-encoded tags,tag data associated with each of a plurality of data-encoded tags,determine a workflow process using the received tag data, and transmit,to the one or more mobile devices, content associated with the workflowprocess.

In some embodiments, any of the above aspects can include one or more ofthe following features. In some embodiments, the plurality ofdata-encoded tags are distributed at different locations. In someembodiments, the plurality of data-encoded tags include RFID tags, NFCtags, smart cards, 2D barcode tags, QR code tags, or any combinationthereof.

In some embodiments, the data associated with each tag includes locationof the tag, color of the tag, design of the tag, affixed position of thetag, points of interest in proximity to the tag, tag type, memory size,tag owner, collection or collection sub-set, security level, informationabout the affixed position, information about object(s) the tag isaffixed to, or any combination thereof. In some embodiments, the one ormore mobile devices records the data associated with each tag in theform of audio, still pictures, video, text, numbers, or any combinationthereof

In some embodiments, the server receives the tag data from the one ormore devices as each tag is read. In some embodiments, the serverreceives the tag data from the one or more devices using a batchprocess. In some embodiments, generating a collection of tags includesdetermining the identity of a collection of tags to be used, andassociating each of the plurality of data-encoded tags and correspondingtag data with the determined collection of tags. In some embodiments,the identity of the collection of tags is determined via user input. Insome embodiments, the identity of the collection of tags is determinedvia a common characteristic of the data collected from the collection oftags.

In some embodiments, the one or more mobile devices store the recordedtag data in a local data storage module before the server receives therecorded tag data. In some embodiments, the server is configured todefine a role for each of the plurality of data-encoded tags based onthe tag data, and develop the workflow process based on the defined rolefor each tag. In some embodiments, the server is configured to receive,from the one or more mobile devices, user data associated with a user ofthe mobile device. In some embodiments, the workflow process isdeveloped using the user data.

In some embodiments, determining a workflow process includes retrieving,from a data source, additional tag data based on the received tag data,generating an instance of a predefined workflow process based on thereceived tag data, the workflow process comprising a plurality ofprocess steps, identifying a first process step in the instance based onthe received tag data and the additional tag data, setting a state ofthe instance to the first process step, executing one or more actionsbased on the identified process step, transmitting content to the one ormore mobile devices, the content being associated with the identifiedprocess step and based on the executed actions, and updating the stateof the instance to a second process step upon receiving an indicationfrom the one or more mobile devices that the transmitted content hasbeen completed. In some embodiments, executing one or more actions basedon the identified process step includes evaluating at least one of: atag read time, a tag location, a position of the first process stepwithin the workflow process, transitions from the first process step,decision rules associated with the first process step, a sequence oftags read by the one or more mobile devices, a user associated with oneor more of the mobile devices, context data associated with the firstprocess step, or any combination thereof.

In some embodiments, executing one or more actions based on theidentified process step further comprises at least one of interactingwith a third-party server to obtain data from an external data source,sending data to an external system, and updating an external system interms of status messages, context data or other associated data. In someembodiments, the transmitted content includes a request for the mobiledevice to perform an action and the indication is generated upon themobile device performing the requested action.

In some embodiments, the request for the mobile device to perform anaction includes a request to answer on-screen prompts, a request toinput data based on local observation, a request to capture audiovisualmedia, a request to interact with another remote device, or anycombination thereof. In some embodiments, the server is configured totransmit at least a portion of the determined workflow process to theone or more mobile devices to enable the devices to execute the workflowprocess while disconnected from the server and, upon reconnection of thedevices to the server, receive, from the devices, activity dataassociated with the workflow process. In some embodiments, a pluralityof instances of one or more predefined workflow processes are generatedbased on the recorded tag data, wherein each of the plurality ofinstances is unique to a user of one of the mobile devices.

In some embodiments, the system includes a plurality of data-encodedtags. In some embodiments, the system includes one or more mobiledevices capable of reading data-encoded tags. In some embodiments, theserver is configured to receive, from the one or more mobile devices,user data associated with a user of the mobile device. In someembodiments, the workflow process is developed using the user data.

Other aspects and advantages of the invention will become apparent fromthe following detailed description, taken in conjunction with theaccompanying drawings, illustrating the principles of the invention byway of example only.

BRIEF DESCRIPTION OF THE DRAWINGS

The advantages of the invention described above, together with furtheradvantages, may be better understood by referring to the followingdescription taken in conjunction with the accompanying drawings. Thedrawings are not necessarily to scale, emphasis instead generally beingplaced upon illustrating the principles of the invention.

FIG. 1 is a block diagram of a system for developing and executingworkflow processes associated with data-encoded tags.

FIG. 2 is a flow diagram of a method for developing workflow processesassociated with data-encoded tags.

FIG. 3 is a flow diagram of a method for executing workflow processesassociated with data-encoded tags.

FIG. 4 is a detailed block diagram of the workflow processing module.

FIG. 5 is a flow diagram of a method for determining a workflow processassociated with data-encoded tags.

DETAILED DESCRIPTION

The systems, methods and devices described herein are directed to thecreation and management of arbitrary geo-spatial workflow processesmediated by enabled mobile devices reading and writing to data-encodedtags, together with network-connected server and associated fulfillmentservices.

For example, a workflow process including a survey of physical locationscan be designed and dispatched from a server-based system to a surveyorusing a mobile device. The surveyor is guided through the survey via themobile device to collect and record data, such as text, numerical data,audio and video and using data encoded into tags as triggers for thecurrent and future steps in the survey. The surveyor receivesinstructions and historical data regarding the physical locationsassociated with the tags as part of the process.

Another example is a consumer using a mobile device to enter a retailenvironment and read a tag. The system generates content to be sent tothe device based on certain data and events, including but not limitedto the previous tags that the user has read and that have been stored inthe database, the preferences expressed by the user and stored in aprofile of the user, other events such as tags read by other consumerseither related or unrelated to the first consumer. Other events ordecisions such as selection by a third party selection process, or a setof criteria based on general market data such as shopping history,search history or other criteria may be used.

FIG. 1 is a block diagram of a system 100 for developing workflowprocesses associated with data-encoded tags. The system 100 includes amobile computing device 102, data-encoded tags 103 a-b, a communicationsnetwork 104, a server computing device 106, and a data storage device108. The server 106 and the data storage device 108 can reside at thesame physical location or may be dispersed to different physicallocations. The server 106 and the data storage device 108 can be locatedon the same physical device, or the data storage device 108 can bedistributed on a different physical device. The server 106 and the datastorage device 108 can communicate via a communications network, forexample the communications network 104. Although FIG. 1 depicts only asingle mobile computing device 102, two data-encoded tags 103 a-b, asingle communications network 104, a single server computing device 106,and a single data storage device 108, the techniques described hereinare not limited to this structure. Instead, this system 100 can includeany of a number of configurations or components (e.g., multiple mobilecomputing devices, multiple tags, multiple servers) that do not departfrom the scope and spirit of the invention.

The mobile computing device 102 communicates with the server computingdevice via the communications network 104. Example mobile computingdevices 102 can include, but are not limited to a smart phone (e.g.,Apple iPhone®, BlackBerry®, Android™-based device) or other mobilecommunications device, a tablet computer, an internet appliance, apersonal computer, or the like. In some examples, the mobile device 102can be installed in a vehicle. The mobile device 102 can be configuredto include an embedded digital camera apparatus, and a storage module(e.g., Flash memory) to hold photographs, video or other informationcaptured with the camera. The mobile device 102 includesnetwork-interface components to enable the user to connect to acommunications network 104, such as the Internet, wireless network(e.g., GPRS, CDMA, RF), or the like. The mobile device can also includecomponents (e.g., scanner, reader) to enable the device to communicateelectronically with tags (e.g., tags 103 a-b) in proximity to thedevice, and to read tags such as barcodes or QR codes.

The mobile device 102 reads the data-encoded tags 103 a-b to obtaininformation from the tags 103 a-b. The data-encoded tags 103 a-b can bea type of electronic tag that communicates with the mobile device 102via a wireless standard (e.g., RFID, NFC) or a printed tag (e.g.,barcode, QR code) that the mobile device 102 can scan, for example, viaimage capture. In some embodiments, at least some of the tags 103 a-bare smart cards. The tags 103 a-b can be distributed at the samephysical location, or distributed at different locations (e.g., within abuilding or geographic area).

The communications network 104 channels communications from the mobiledevice 102 to the server 106. The network 104 may be a local network,such as a LAN, or a wide area network, such as the Internet or the WorldWide Web. The network 104 may utilize cellular, satellite or otherwireless communications technology. For example, the mobile device 102may send and receive information via a communications link to asatellite, which in turn communicates with the server 106. The mobiledevice 102 and the server 106 can transmit data using standardformatting and/or transmission protocols, such as XML, HTTP, HTTPS, SMS,JSON, or other similar data communication techniques.

The server computing device 106 communicates with the mobile device 102via a communications network, e.g., communications network 104. Theserver 106 includes a workflow processing module 110. The workflowprocessing module 110 provides a data interface between the mobiledevice 102 and the server 106.

FIG. 2 is a flow diagram 200 of a method for developing workflowprocesses associated with data-encoded tags using the system 100 ofFIG. 1. The workflow processing module 110 of the server computingdevice 106 receives (202) tag data associated with each of a pluralityof tags (e.g., tags 103 a-b) from one or more mobile devices (e.g.,mobile device 102) capable of reading the tags. The workflow processingmodule 110 generates (204) a collection of tags to include each of theplurality of tags identified by the received tag data. The workflowprocessing module 110 develops (206) a workflow process associated withthe collection of tags by using the received tag data. The workflowprocessing module 110 stores the developed workflow process in a datastorage module (e.g., data storage 108).

In some embodiments, the plurality of tags 103 a-b are encoded with dataduring manufacture and are distributed in a geographically dispersedmanner. In some embodiments, the plurality of tags 103 a-b are encodedwith data on location. For each tag, the mobile device can:

-   -   Read data encoded in the tag, including but not limited to an        identification parameter that uniquely identifies the tag to the        system;    -   Associate the tag and its encoded data with a collection of tags        (which are optionally selectable by the user);    -   Capture and record the location (via GPS or other        geo-positioning capability of the mobile device) of the tag; and    -   Record additional data associated with the tag such as color of        the tag, design of the tag, affixed position of the tag, and        points of interest in proximity to the tag. The additional data        can be recorded in the form of audio, still pictures, video,        text, and/or numbers.

Once the workflow processing module 110 in the server computing device106 collects the tag data from the mobile device 102 and stores thecollection of tags, the workflow processing module can use thecollection of tags to develop workflow processes associated with thetags. In some embodiments, the workflow processing module definessub-sets of one or more collections of tags. A sub-set of a collectionof tags can be associated with an individual workflow process, where aparticular tag can have a different role depending on various factors,such as the user or mobile device that reads the tag and/or othercharacteristics of the context in which the tag was read.

FIG. 3 is a flow diagram 300 of a method for executing workflowprocesses associated with data-encoded tags using the system 100 ofFIG. 1. The workflow process module 110 of the server computing device106 receives (302) tag data associated with each of a plurality of tags(e.g., tags 103 a-b) from one or more mobile devices (e.g., mobiledevice 102) capable of reading data-encoded tags. The workflow processmodule 110 determines (304) a workflow process using the tag data. Theworkflow process module 110 transmits (306) content associated with theworkflow process to the one or more mobile devices.

FIG. 4 is a detailed block diagram of the workflow processing module110. The workflow processing module 110 includes a process template 402,a process manager 404, a process engine 406 and one or more processinstances (e.g., 408 a-c). The process template 402 is a series ofprocess steps in the form of a workflow that can be pre-configured andstored for retrieval and access by the process manager 404 and processengine 406. Although FIG. 4 only depicts one process template 402, itshould be understood that multiple process templates that define thesame, similar or different workflow processes are available to be usedby the process manager 404 and the process engine 406.

The process manager 404 controls the structure and design of the processtemplate 402. For example, the process manager 404 can update theprocess template 402 by adding data requirements to impact the sequenceof the process template 402 or changing business logic and rulesassociated with the process template 402. The process manager 404 canalso develop derivative workflow processes from the process template402. For example, the process manager 404 can extract a portion orsub-set of the process template 402 to provide a customized workflow toa mobile device based on specific requirements or tasks. In someembodiments, the process manager 404 is a software module executing on aprocessor located in the server computing device 106.

In some embodiments, the process template 402 is stored in a datastorage module (e.g., data storage 108 of FIG. 1). The process manager404 retrieves the process template 402 when updates are necessary, andthe process engine 406 retrieves the process template when generatingthe process instances 108 a-c for particular mobile devices that connectto the server computing device 106.

The process engine 406 retrieves the process template 402 and generatesone or more process instances (e.g., 408 a-c) of the process template402 to be used by mobile devices. In some embodiments, the processengine 406 generates and manages a process instance for each mobiledevice that connects to the server computing device 106 and transmitstag data to the server 106. In some embodiments, the process engine 406can generate and manage multiple process instances, where the multipleprocess instances are associated with a single mobile device or aplurality of mobile devices.

The process instances 408 a-c are individual copies of the processtemplate 402 that are generated by the process engine 406. The processinstances 408 a-c can be separate threads or sessions executing on theserver computing device 106 that are associated with particular mobiledevice(s). The workflow processing module 110 can generate and execute aplurality of process instances at the same time to manage workflowprocesses for multiple mobile devices and/or users. In some embodiments,the process engine 406 generates a process instance (e.g., instance 408a) upon receiving tag data from a mobile device. The process engine 406analyzes the tag data to determine a workflow process or processes towhich the tag data applies, and generates an instance of the determinedworkflow process for use by the mobile device.

FIG. 5 is a flow diagram of a method 500 for determining a workflowprocess based on received tag data (e.g., step 304 of FIG. 3) using thesystem 100 of FIG. 1 and the workflow processing module 110 of FIG. 4.The workflow processing module 110 receives tag data from a mobiledevice and retrieves (502) additional tag data from a data sourcecoupled to the server computing device 106. The process engine 406generates (504) an instance of a predefined workflow process (e.g.,instance 408 a) based on the tag data. The process engine 406 identifies(506) a process step in the generated process instance 408 a based onthe tag data.

The process engine 406 sets (508) a state of the generated processinstance 408 a to align with the identified process step and executes(510) one or more actions based on the identified process step. Forexample, if the received tag data indicates that the mobile device 102which sent the tag data is performing a task associated with step threeof a seven-step workflow process, the process engine 406 sets thegenerated process instance 408 a to step three. As a result, when theprocess engine 406 receives subsequent tag data or action item responsesfrom the mobile device 102, the process engine 406 understands at whichpoint in the workflow the mobile device 102 is set (e.g., step three)and can execute actions related to later steps in the workflow process.Continuing with the above example, the process engine 406 can performspecific processing (e.g., related to the tag data) defined at stepthree of the workflow process and transmit (512) content to the mobiledevice 102 based on the processing. Upon transmitting the content and/orreceiving a response to the transmitted content from the mobile device102, the process engine 406 can update (514) the process instance 408 ato a subsequent step (e.g., step four).

Further details of embodiments of the method for determining a workflowprocess based on received tag data are presented below. In someembodiments, the mobile device 102 reads a tag 103 a and receives datathat is encoded on the tag 103 a. The encoded data can be a parameter orcode (e.g., an ID number) that uniquely identifies tag 103 a. The mobiledevice 102 can be configured to use the unique parameter to connect, viathe network 104, to the server computing device 106 associated with theworkflow processing module 110 and process engine 406. For example, tags103 a-b can be encoded with a uniform resource locator (URL) or otheraddressing parameter during manufacture. The tags 103 a-b can also beencoded in a manner that encrypts the data located on the tags.Additionally, the unique parameter or tag ID—along with othercharacteristics or data associated with the tag—can be stored in adatabase (e.g., data storage 108) that is accessible by the servercomputing device 106. In some embodiments, the database that stores thetag ID is not accessible by the mobile device 102 directly.

As part of the connection process, the mobile device 102 transmits tagdata. The process engine 406 can identify certain data items in the tagdata, including but not limited to:

-   -   characteristics of the participant (or user of the mobile        device);    -   the unique parameter (tag ID) that identifies the tag; and    -   other data encoded on the tag.

The process engine 406 determines additional attributes orcharacteristics of the tag 103 a by analyzing a data source (e.g., datastorage 108) that contains tag data. For example, the process engine 406can retrieve the tag location, tag owner, current role, and similar tagdata.

The process engine 406 identifies the tag and user combination in orderto determine the workflow process to use as a basis for generating a newprocess instance or, in cases where the process engine 406 has alreadyassociated a process instance (e.g., process instance 408 a) with thetag and user combination, the process engine 406 identifies the tag anduser combination to locate the process instance 408 a in use by themobile device 102 that transmitted the tag data. Based on the processinstance currently in use by the mobile device 102, the process engine406 executes actions (e.g., processing data, retrieving content) thatare associated with the specific step of the process instance 408 a. Theprocess engine 406 then transmits content to the mobile device 102 basedon the executed actions to complete the currently active step of theworkflow process defined in the process instance 408 a. The processengine 406 concurrently updates the process instance 408 a to reflectthe completion of the executed actions and transmitted content by, forexample, moving to a subsequent process step or ending the process.

As described above, content, actions and service fulfillment that theserver computing device 106, through the workflow processing module 110,delivers to the mobile device 102 are based on a workflow process modeland process step transitions that depend on data derived from the mobiledevice's 102 reading of tag(s). In some embodiments, the process engine406 performs a dynamic real-time evaluation of received tag data todetermine the required actions in the associated workflow process. Theevaluation can be based on a number of factors, including but notlimited to:

-   -   the position, state or step in which the mobile device is        currently active;    -   the topology of the process flow(s) within the overall workflow        process, the transition between workflow process steps, and        decision criteria associated with one or more transitions;    -   the decision points, logic, or business rules at each position,        state or step of the process which the process engine can        execute or consider;    -   the physical location of the tag, including the tag's proximity        to and/or dependence on other tags of the system;    -   the time at which the mobile device read the tag;    -   the sequence and history of tags in the collection that the        process engine has received from the mobile device;    -   the identity of the user operating the mobile device or an        associated profile of the user—for example, the profile can        include demographic and/or user preference data (that can be        related to the user's previous or predicted behavior), and the        data that constitutes the user profile can be provided by the        user and/or derived by automated analysis of historical data        stored in the system.

Further, the evaluation can be based on additional contextual aspectsassociated with the tag data, including but not limited to:

-   -   actions received in real-time from other mobile devices that are        accessing the system;    -   events external to the system that influence the decision-making        process of the process engine;    -   change in indicators relating to the business context of the        system, for example, stock market indices;    -   weather forecasts;    -   public service announcements; and    -   flight or travel information.

Additionally, in some embodiments, the evaluation and execution of aworkflow process by the process engine 406 can involve interaction witha third-party server or data source to:

-   -   gather information to be forwarded to the third-party;    -   obtain information from a third-party and forward that        information to the mobile device;    -   determine the result of a decision in the workflow process and        forward the result to the mobile device.

Further, in some embodiments, the process engine 406 transmits contentto the mobile device based on the evaluation and execution of theworkflow process. For example, the transmitted content can be a requestto perform an action, including but not limited to:

-   -   answer on-screen prompts provided by the process engine;    -   input data based on a local observation made by a user of the        mobile device at the location of the tag; and    -   take a picture or other audio/video recording with the device        and transmit the picture to the process engine.

Another example of a request to perform an action is instructing themobile device to interact with another NFC-enabled device (e.g., mobiledevice and/or tag). In this embodiment, multiple end users can interactwithin the same workflow process or across multiple workflow processes.In addition, different mobile devices can in one or many processinstances during use of the system. At a particular point in time, themobile devices can be interacting with multiple process instances—whichcan be related or unrelated, as the process instances can refer todifferent scenarios, workflows, tag collections, and/or tag collectionowners.

In some cases, the user may want or need to work in an off-line mode,where the mobile device 102 is not presently connected to the servercomputing device 106 (e.g., via network 104). Therefore, in someembodiments, the workflow processing module 110 transmits workflowprocess data, including but not limited to process instance 408 a steps,to the mobile device 102 for local storage and execution. For example, aset of data relating to the user, one or more workflow processess, andcontent relating to the workflow processes and the tag collection areloaded on to the mobile device prior to the device being disconnectedfrom a wireless or fixed network connection. The mobile device 102 cancontinue to instantiate process instances so that the user can executethe workflows, and interact with tags and other devices, as if the userwas online, but without the need to use the network 104 to connect tothe server computing device 106 for a pre-determined amount of time.

When the mobile device 102 reconnects to the server computing device106, the server computing device 106 receives the tag and activity datagenerated during the time that the mobile device were off-line. In someembodiments, the received data can notify the server computing device106 of the user's progress through the workflow process during theoff-line time.

In some embodiments, the off-line mode is initiated on-demand. Forexample, when there is a sudden loss of network connection or networksignal, the off-line mode can be supported by a cache of future possiblestates or steps within the workflow process. The cache can be computedahead of time by the server computing device 106 according to variousoutcomes or scenarios that can occur. The server computing device 106updates the cache on the mobile device 102 with content for a limitedfuture duration, either based on a length of time or a number of stepsin the workflow.

In some embodiments, the off-line mode is initiated in a planned way.When the off-line mode is initiated in a planned way, the user (oranother separate user or users) can predefine a workflow through apreset collection of tags. The process instance of the predefinedworkflow is generated on-line in connection with the server computingdevice 106. Once the instance is generated, the server computing device106 compiles the process instance and the related content, and transfersthe compiled data to the mobile device 102. As a result, the mobiledevice 102 can execute the process instance without being connected tothe server computing device 106. Data generated or captured duringoff-line mode is stored on the mobile device 102 until the mobile device102 is once again connected to the server computing device 106, and thedata is then uploaded to the server computing device 106, eitherautomatically or at the request of the server computing device 106 orthe mobile device 102. In some embodiments, off-line interactions arewith tags 103 a-b, other mobile devices, or both.

The following paragraphs are example use cases employing the techniquesdescribed above.

Use Case 1—Social Check-in Example

Recently, as part of evolving social media technology, mobile devicesand associated software have made it more popular to ‘check-in’ whenvisiting various retail and/or entertainment locations. The techniquesdescribed herein can be used as an interaction mechanism for customersto perform a check-in function. The techniques also enable the owner orentity (e.g., a corporation) associated with the location to interactmore fully with customers by way of a workflow process designed toimprove the relationship with customers.

For example, upon receiving tag data from a mobile device, the processengine 406 can determine whether the received data indicates a check-inrequest by analyzing the identity of the user and/or the mobile devicein conjunction with the role of the tag and the previous history of themobile device in reading tags. The process engine 406 can deliveradditional content and services to the mobile device 102 during theuser's visit to the retail environment. The process engine 406 can alsoprovide alternative or different content depending on, for example, howfrequently the mobile device checks in to the location. For example, theprocess engine 406 can provide content indicating an incentive (e.g., acoupon, a free item) to the user if he or she reads additional tags inthe location, thereby encouraging the user to read more tags andincrease the interaction between the user and the retail establishment.

Use Case 1—Audit/Survey Example

The techniques described herein can also be used in the context ofenvironmental auditing and building surveys. In this context, highlyspecialized auditors and surveyors visit industrial and commercial sitesto perform an audit of the environment and impact of the site on theenvironment. Traditionally, the surveyor visits and tours a facility toperform surveys. During the visit, the surveyor takes copious notes,photographs and possibly recordings based on observations. Later, backat the office, this data is transferred into a computer system and areport is prepared. The data is also used to assemble an on-line webbased information repository for the client and then a written report isalso produced.

Using the techniques described here, the auditor can be equipped with amobile device (e.g., smartphone) that is capable of interacting with thesystem and reading tags. The auditor can also have a set of RFID/NFCtags. To perform the initial audit, the auditor can tour the locationand, at key points during the tour, the auditor can place a tag in aparticular location (e.g., by affixing it permanently orsemi-permanently). The tags used by the auditor can be discrete andunobtrusive, yet designed to be affixed for long durations. The tags canalso be tamper-proof such that the tags cannot be removed and replacedelsewhere.

The auditor can read the tag with his mobile device and upload relevanttag data to the system for incorporation into workflow processes. Forexample, the mobile device can read the tag using a standard protocol(e.g., NFC) and transmit the tag data to the process engine to initiatean instance of a workflow process. In some embodiments, the processmanager can use the tag data to create or update generic workflowprocesses and store the tag data. The instantiated workflow process canbe either predefined by an off-site audit manager (e.g., via a webmanagement portal or interface) so that the process is tailored to theauditor's specific tasks, or the process can include standard audittasks predefined as part of a normal audit. The process engine canprovide the mobile device with instructions based on the workflowprocess selected.

The auditor follows the instructions on the screen, e.g., selects dataitems from drop-down menus, takes photographs or a short video, makes avoice comment about what the auditor has seen. Upon completion, themobile device can save the tag data locally (e.g., in a storagemechanism on the mobile device) and also transmit the tag data to theserver computing device. The process engine analyzes the received tagdata and executes actions called for in the workflow process. Theprocess engine then transmits content back to the mobile device, forexample, a follow-up inquiry for the auditor to address such as furtherdata collection, a confirmation, or a request for a future visit. Insome embodiments, the steps are pre-defined on the server computingdevice, and the auditor simply completes the relevant questions.

When the auditor has finished, the server computing device stores thedata associated with the auditor's visit in data storage. The servercomputing device further makes the data available for other members ofthe team to review, start work on a client report, and update the clientinformation system.

An advantage of this approach is that when follow-ups, repeat audits andother visits are carried out, the tags are already in place and thefollow-up work can be performed quickly and easily. Specific locationsor tags can be targeted and others ignored for such follow-ups. This canall be handled in the office prior to the visit. The office based teamcan review the audit and schedule specific point related follow-ups,that can be stored and triggered during the next routine survey or bescheduled for a specific follow-up.

A strength of the networked server-based tag system described in thisexample is that a ‘virtual link’ is created between the location of thetag and the server-based system such that the dependency on theindividual auditor is reduced. Therefore, follow-up visits can becarried out by different auditors, staff members, or another company'sauditors if required—and the data collection is controlled at a detailedlevel. Over time, a matrix of tags and tag collections evolves at thesite for the system to use in building a nuanced picture of theenvironmental state and how it has evolved. The automation eases theauditors' work and frees the business from having to send the sameauditor on repeat visits due to their history with a site because thenetworked server-based tag system allows the audit to be configured‘virtually’ ahead of time and then performed by a different person. Thedata collected can then be used for more complex analysis and to providedata to other key business systems.

The above-described techniques can be implemented in digital and/oranalog electronic circuitry, or in computer hardware, firmware,software, or in combinations of them. The implementation can be as acomputer program product, i.e., a computer program tangibly embodied ina machine-readable storage device, for execution by, or to control theoperation of, a data processing apparatus, e.g., a programmableprocessor, a computer, and/or multiple computers. A computer program canbe written in any form of computer or programming language, includingsource code, compiled code, interpreted code and/or machine code, andthe computer program can be deployed in any form, including as astand-alone program or as a subroutine, element, or other unit suitablefor use in a computing environment. A computer program can be deployedto be executed on one computer or on multiple computers at one or moresites.

Method steps can be performed by one or more processors executing acomputer program to perform functions of the invention by operating oninput data and/or generating output data. Method steps can also beperformed by, and an apparatus can be implemented as, special purposelogic circuitry, e.g., a FPGA (field programmable gate array), a FPAA(field-programmable analog array), a CPLD (complex programmable logicdevice), a PSoC (Programmable System-on-Chip), ASIP(application-specific instruction-set processor), or an ASIC(application-specific integrated circuit), or the like. Subroutines canrefer to portions of the stored computer program and/or the processor,and/or the special circuitry that implement one or more functions.

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital or analog computer.Generally, a processor receives instructions and data from a read-onlymemory or a random access memory or both. The essential elements of acomputer are a processor for executing instructions and one or morememory devices for storing instructions and/or data. Memory devices,such as a cache, can be used to temporarily store data. Memory devicescan also be used for long-term data storage. Generally, a computer alsoincludes, or is operatively coupled to receive data from or transferdata to, or both, one or more mass storage devices for storing data,e.g., magnetic, magneto-optical disks, or optical disks. A computer canalso be operatively coupled to a communications network in order toreceive instructions and/or data from the network and/or to transferinstructions and/or data to the network. Computer-readable storagemediums suitable for embodying computer program instructions and datainclude all forms of volatile and non-volatile memory, including by wayof example semiconductor memory devices, e.g., DRAM, SRAM, EPROM,EEPROM, and flash memory devices; magnetic disks, e.g., internal harddisks or removable disks; magneto-optical disks; and optical disks,e.g., CD, DVD, HD-DVD, and Blu-ray disks. The processor and the memorycan be supplemented by and/or incorporated in special purpose logiccircuitry.

To provide for interaction with a user, the above described techniquescan be implemented on a computer in communication with a display device,e.g., a CRT (cathode ray tube), plasma, or LCD (liquid crystal display)monitor, for displaying information to the user and a keyboard and apointing device, e.g., a mouse, a trackball, a touchpad, or a motionsensor, by which the user can provide input to the computer (e.g.,interact with a user interface element). Other kinds of devices can beused to provide for interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, and/ortactile input.

The above described techniques can be implemented in a distributedcomputing system that includes a back-end component. The back-endcomponent can, for example, be a data server, a middleware component,and/or an application server. The above described techniques can beimplemented in a distributed computing system that includes a front-endcomponent. The front-end component can, for example, be a clientcomputer having a graphical user interface, a Web browser through whicha user can interact with an example implementation, and/or othergraphical user interfaces for a transmitting device. The above describedtechniques can be implemented in a distributed computing system thatincludes any combination of such back-end, middleware, or front-endcomponents.

The components of the computing system can be interconnected bytransmission medium, which can include any form or medium of digital oranalog data communication (e.g., a communication network). Transmissionmedium can include one or more packet-based networks and/or one or morecircuit-based networks in any configuration. Packet-based networks caninclude, for example, the Internet, a carrier internet protocol (IP)network (e.g., local area network (LAN), wide area network (WAN), campusarea network (CAN), metropolitan area network (MAN), home area network(HAN)), a private IP network, an IP private branch exchange (IPBX), awireless network (e.g., radio access network (RAN), Bluetooth, Wi-Fi,WiMAX, general packet radio service (GPRS) network, HiperLAN), and/orother packet-based networks. Circuit-based networks can include, forexample, the public switched telephone network (PSTN), a legacy privatebranch exchange (PBX), a wireless network (e.g., RAN, code-divisionmultiple access (CDMA) network, time division multiple access (TDMA)network, global system for mobile communications (GSM) network), and/orother circuit-based networks.

Information transfer over transmission medium can be based on one ormore communication protocols. Communication protocols can include, forexample, Ethernet protocol, Internet Protocol (IP), Voice over IP(VOIP), a Peer-to-Peer (P2P) protocol, Hypertext Transfer Protocol(HTTP), Session Initiation Protocol (SIP), H.323, Media Gateway ControlProtocol (MGCP), Signaling System #7 (SS7), a Global System for MobileCommunications (GSM) protocol, a Push-to-Talk (PTT) protocol, a PTT overCellular (POC) protocol, Universal Mobile Telecommunications System(UMTS), 3GPP Long Term Evolution (LTE) and/or other communicationprotocols.

Devices of the computing system can include, for example, a computer, acomputer with a browser device, a telephone, an IP phone, a mobiledevice (e.g., cellular phone, personal digital assistant (PDA) device,smart phone, tablet, laptop computer, electronic mail device), and/orother communication devices. The browser device includes, for example, acomputer (e.g., desktop computer, laptop computer) with a World Wide Webbrowser (e.g., Microsoft® Internet Explorer® available from MicrosoftCorporation, Mozilla® Firefox available from Mozilla Corporation).Mobile computing device include, for example, a Blackberry®. IP phonesinclude, for example, a Cisco® Unified IP Phone 7985G available fromCisco Systems, Inc, and/or a Cisco® Unified Wireless Phone 7920available from Cisco Systems, Inc.

Comprise, include, and/or plural forms of each are open ended andinclude the listed parts and can include additional parts that are notlisted. And/or is open ended and includes one or more of the listedparts and combinations of the listed parts.

One skilled in the art will realize the invention may be embodied inother specific forms without departing from the spirit or essentialcharacteristics thereof. The foregoing embodiments are therefore to beconsidered in all respects illustrative rather than limiting of theinvention described herein.

What is claimed is:
 1. A system for developing workflow processesassociated with data-encoded tags, the system comprising: a serverconfigured to: receive, from one or more mobile devices capable ofreading data-encoded tags, tag data associated with each of a pluralityof tags; generate a collection of tags to include each of the pluralityof data-encoded tags; develop a workflow process associated with thecollection of tags using the tag data; and store the workflow process ina data storage module.
 2. The system of claim 1, wherein the pluralityof data-encoded tags are distributed at different locations.
 3. Thesystem of claim 1, wherein the plurality of data-encoded tags includeRFID tags, NFC tags, smart cards, 2D barcode tags, QR code tags, or anycombination thereof.
 4. The system of claim 1, wherein the dataassociated with each tag includes location of the tag, color of the tag,design of the tag, affixed position of the tag, points of interest inproximity to the tag, or any combination thereof.
 5. The system of claim1, wherein the one or more mobile devices records the data associatedwith each tag in the form of audio, still pictures, video, text,numbers, or any combination thereof.
 6. The system of claim 1, whereinthe server receives the tag data from the one or more devices as eachtag is read.
 7. The system of claim 1, wherein the server receives thetag data from the one or more devices using a batch process.
 8. Thesystem of claim 1, wherein generating a collection of tags comprises:determining the identity of a collection of tags to be used; andassociating each of the plurality of data-encoded tags and correspondingtag data with the determined collection of tags.
 9. The system of claim8, wherein the identity of the collection of tags is determined via userinput.
 10. The system of claim 1, wherein the one or more mobile devicesstore the recorded tag data in a local data storage module before theserver receives the recorded tag data.
 11. The system of claim 1, theserver further configured to: define a role for each of the plurality ofdata-encoded tags based on the tag data; and develop the workflowprocess based on the defined role for each tag.
 12. The system of claim1, the server further configured to receive, from the one or more mobiledevices, user data associated with a user of the mobile device.
 13. Thesystem of claim 12, wherein the workflow process is developed using theuser data.
 14. A method for developing workflow processes associatedwith data-encoded tags, the method comprising: receiving, by a serverfrom one or more mobile devices capable of reading data-encoded tags,tag data associated with each of a plurality of data-encoded tags;generating, by the server, a collection of tags to include each of theplurality of data-encoded tags; developing, by the server, a workflowprocess associated with the collection of tags using the received tagdata; and storing, by the server, the workflow process in a data storagemodule.
 15. The method of claim 14, wherein the plurality ofdata-encoded tags are distributed at different locations.
 16. The methodof claim 14, wherein the plurality of data-encoded tags include RFIDtags, NFC tags, smart cards, 2D barcode tags, QR code tags, or anycombination thereof.
 17. The method of claim 14, wherein the dataassociated with each tag includes location of the tag, color of the tag,design of the tag, affixed position of the tag, points of interest inproximity to the tag, or any combination thereof.
 18. The method ofclaim 14, wherein the one or more mobile devices records the dataassociated with each tag in the form of audio, still pictures, video,text, numbers, or any combination thereof.
 19. The method of claim 14,wherein the server receives the tag data from the one or more devices aseach tag is read.
 20. The method of claim 14, wherein the serverreceives the tag data from the one or more devices using a batchprocess.
 21. The method of claim 14, wherein generating a collection oftags comprises: determining the identity of a collection of tags to beused; and associating each of the plurality of data-encoded tags andcorresponding tag data with the determined collection of tags.
 22. Themethod of claim 21, wherein the identity of the collection of tags isdetermined via user input.
 23. The method of claim 14, wherein the oneor more mobile devices store the recorded tag data in a local datastorage module before the server receives the recorded tag data.
 24. Themethod of claim 14, further comprising: define, by the server, a rolefor each of the plurality of data-encoded tags based on the tag data;and develop the workflow based on the defined role for each tag.
 25. Themethod of claim 14, the server further configured to receive, from theone or more mobile devices, user data associated with a user of themobile device.
 26. The system of claim 25, wherein the workflow processis developed using the user data.